package com.bdmc.base.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.bdmc.common.annotation.ExcelDictFormat;
import com.bdmc.common.convert.ExcelDictConvert;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;


/**
 * 设备管理视图对象 base_device
 *
 * @author bdmc
 * @date 2022-03-03
 */
@Data
@ExcelIgnoreUnannotated
public class BaseDeviceVo {

	private static final long serialVersionUID = 1L;

    /**
     * 设备id
     */
	@ExcelProperty(value = "设备id")
	private Long deviceId;

    /**
     * 部门id
     */
	@ExcelProperty(value = "部门id")
	private Long deptId;

    /**
     * 设备名称
     */
	@ExcelProperty(value = "设备名称")
	private String deviceName;

    /**
     * 设备类型
     */
    @ExcelProperty(value = "设备类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "base_device_type")
	private String deviceType;

    /**
     * 808协议终端手机号
     */
	@ExcelProperty(value = "808协议终端手机号")
	private String devicePhoneNum;

    /**
     * sim号
     */
	@ExcelProperty(value = "sim号")
	private String simNum;

    /**
     * imei
     */
	@ExcelProperty(value = "imei")
	private String imei;

    /**
     * 厂商
     */
	@ExcelProperty(value = "厂商")
	private String manufacturer;

    /**
     * 型号
     */
	@ExcelProperty(value = "型号")
	private String deviceModel;

    /**
     * 协议
     */
	@ExcelProperty(value = "协议")
	private String protocol;

    /**
     * 备注
     */
	@ExcelProperty(value = "备注")
	private String remark;

	@ExcelProperty(value = "部门名称")
	private String deptName;

	/**
	 * 是否已绑定
	 */
	@ExcelProperty(value = "是否已绑定")
	private Integer bind;

	/**
	 * 绑定对象
	 */
	@ExcelProperty(value = "绑定对象")
	private String bindTarget;

	@ExcelProperty(value = "是否已设置参数")
	private Integer settingParams;

	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private LocalDateTime dataTime;

	private Integer onlineStatus;

}
